package com.ztf.gui;

import java.awt.BorderLayout;
import java.io.File;
import java.io.FileFilter;
 
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;

public class JListDemo extends JFrame{
	private static final long serialVersionUID = 1L;

	public JListDemo() {
		JList<File> list = new JList<File>();
		ImageListModel listModel = new ImageListModel();
		/**
		 * 这里使用了一个匿名内部内，来过滤文件格式 files.list()是获取该目录下的所有文件
		 * files.listFiles()是获取该目录下所有文件和目录的绝对路径 我们在获取的时候可以传入一个【FileFilter】过滤器
		 * 用到一个匿名内部类，accept则是过滤方法，file.name得到这个文件的名字.endsWith("jpg")
		 * 在rootpath路径下筛选出jpg格式的文件存入files集合中
		 */
		File[] files = new File("head").listFiles(new FileFilter() {
			public boolean accept(File file) {
				return file.getName().endsWith("jpg");
			}
		});
//		for (File file : files) {
//			listModel.addElement(file);
//		}
//		list.setModel(listModel);
		// 设置JList的渲染器为我们自己构建的渲染器
		list.setCellRenderer(new ImageCellRender());
		// setVisibleRowCount设置显示的行数，但是如果设置了面板的高度 这个会不起效果
		// list.setVisibleRowCount(4);

		// 将JList放在滚动面板上
		JScrollPane scrollPane = new JScrollPane(list);
		getContentPane().add(scrollPane, BorderLayout.CENTER);
		getContentPane().add(new JLabel("带图片的Jlist"), BorderLayout.NORTH);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(900, 350, 50, 300);

	}

	public static void main(String[] args) {
		new JListDemo().setVisible(true);
	}
}
